/*
 * @lc app=leetcode.cn id=14 lang=golang
 *
 * [14] 最长公共前缀
 */
package main

import "fmt"

// @lc code=start
// 所有字符串的每个i字符进行比较，直到出现不一样的情况；把前面i的字符拼接成字符串返回
func longestCommonPrefix(strs []string) string {
	if len(strs) == 0 {
		return ""
	}
	var res string
	for i := 0; i < len(strs[0]); i++ {
		for j := 1; j < len(strs); j++ {
			if i >= len(strs[j]) || strs[j][i] != strs[0][i] {
				return res
			}
		}
		res += string(strs[0][i])
	}
	return res

}

// @lc code=end

// 拿第一个字符串，跟第二个字符串比较出最长前缀，得到的结果跟剩余的字符串比较，得到最长的公共前缀
func longestCommonPrefix2(strs []string) string {

	if len(strs) == 0 {
		return ""
	}

	prefix := strs[0]

	for _, str := range strs[1:] {
		i := 0
		for i < len(prefix) && i < len(str) && prefix[i] == str[i] {
			i++
		}

		prefix = prefix[:i]
		if prefix == "" {
			break
		}

	}
	return prefix
}

func main() {
	fmt.Println(longestCommonPrefix([]string{"flower", "flow", "flight"}))
}
